package org.aerie.forest.core.frame.rebar._shelf;

import org.aerie.forest.core.frame.rebar.entity.processer.configuration.ConfigProcessor;
import org.aerie.forest.core.frame.rebar.entity.processer.exception.ExceptionProcessor;
import org.aerie.forest.core.frame.rebar.factory.ForestShelf;

/**
 * @description forest架构元素初始化货架【封装好的货架】
 *
 * @author quark
 * @organization aerie
 * @date 2020年2月20日 下午3:06:37
 * @version 1.2.0
 */
public final class ForestInitShelf extends ForestShelf {

	/**
	 * @description forest静态内部类单例
	 *
	 * @author quark
	 * @organization aerie
	 * @date 2020-8-16 21:44:27
	 * @version 2.0.1
	 */
	private static final class ForestInstance {

		/**
		 * @description 单例
		 * 
		 * @author quark
		 * @date 2020-8-16 21:44:09
		 * @version 2.0.1
		 */
		private static final ForestInitShelf FOREST_INIT_SHELF = new ForestInitShelf();
	}

	/**
	 * Construction
	 * 
	 *
	 * @author quark
	 * @date 2020-8-16 21:42:33
	 * @version 2.0.1
	 */
	private ForestInitShelf() {
		super("forest初始化货架");
		SingletonValidateContainer.INSTANCE.checkSingleton(this.getClass());
	}

	/**
	 * @description 获得forest架构元素初始化货架单例
	 * @return forest架构元素初始化货架单例
	 *
	 * @date 2020年2月20日 下午3:59:13
	 * @version 1.2.0
	 */
	public static ForestInitShelf getInstance() {
		return ForestInstance.FOREST_INIT_SHELF;
	}

	// 货架商品
	/**
	 * @description 分层异常处理器
	 * 
	 * @author quark
	 * @date 2020年2月20日 下午4:10:49
	 * @version 1.2.0
	 */
	public final RebarScutcheon<ExceptionProcessor> EXCRPTION_PROCESSOR = new RebarScutcheon<ExceptionProcessor>() {

	};

//	/**
//	 * @description forest核心的工具
//	 * 
//	 * @author quark
//	 * @date 2020年2月20日 下午4:11:04
//	 * @version 1.2.0
//	 */
//	public final RebarScutcheon<ForestCoreTool> FOREST_CORE_TOOL = new RebarScutcheon<ForestCoreTool>() {
//
//	};

	/**
	 * @description forest配置变量加载
	 * 
	 * @author quark
	 * @date 2020年6月10日 下午5:22:34
	 * @version 1.2.2
	 */
	public final RebarScutcheon<ConfigProcessor> CONFIG_PROCESSOR = new RebarScutcheon<ConfigProcessor>() {

	};

}
